<?php

require_once("/var/www/AppResiduos2/config/BaseDatosPDO.php");
require_once("/var/www/AppResiduos2/lib/model/ProductorResiduo.php");

class ProductorResiduoDAO{
    
        var $conexion;

        public function  __construct() {
            try{
                $bd = new BaseDatosPDO("localhost", "phplogin", "root", "root");
                $this->conexion = $bd->conectar();
            } catch (PDOException $e){
                echo $e->getMessage();
            }
            $this->conexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
            $this->conexion->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER);
        }
        
         /**
         * Crea un nuevo registro en la tabla producers_residues de la bd
         * @param ProductorResiduo $pr
         */
        public function nuevoProdResiduo($pr){
            $query = $this->conexion->prepare("INSERT INTO producers_residues VALUES (?,?)");
            $params = array($pr->idProducer, $pr->idResidue);
            $result = $query->execute($params);
        }

        /**
         * Modifica un registro de la tabla producers_residues de la bd
         * @param ProductorResiduo $pr
         */
        public function modificarProdResiduo($pr){

        }

        /**
         * Elimina un registro de la tabla producers_residues de la bd
         * @param ProductorResiduo $pr
         */
        public function eliminarProdResiduo($pr){
            $query = $this->conexion->prepare('DELETE FROM producers_residues
                WHERE idProducer = ? and idResidue = ?');
            $result = $query->execute(array($pr->idProducer, $pr->idResidue));
        }

        /**
         * Lista todos los registros de la tabla producers_residues
         * @return ProductorResiduo
         */
        public function listarProdYResiduo(){
            $query = $this->conexion->prepare('SELECT * FROM producers_residues');
            $query->execute();
            $result = $query->fetchAll(PDO::FETCH_OBJ);
            return $result;
        }

        /**
         * retorna los registros de la tabla producers_residues
         * para los cuales el campo idProducer es igual al parametro
         * entregado.
         * @param int $idProd
         * @return ProductorResiduo
         */
        public function listarProdResiduo($idProd){
            $query = $this->conexion->prepare('SELECT * FROM producers_residues
                WHERE idProducer = ?');
            $query->execute(array($idProd));
            $result = $query->fetchAll(PDO::FETCH_OBJ);
            return $result;
        }
    
}

// Prueba1: Agregar registro a tabla producers_residues
//$pr = new ProductorResiduo();
//$pr->idProducer = 5;
//$pr->idResidue = "R1";
//$pr2 = new ProductorResiduo();
//$pr2->idProducer = 5;
//$pr2->idResidue = "R2";
//$pr3 = new ProductorResiduo();
//$pr3->idProducer = 6;
//$pr3->idResidue = "R2";
//$prDAO = new ProductorResiduoDAO();
//$prDAO->nuevoProdResiduo($pr);
//$prDAO->nuevoProdResiduo($pr2);
//$prDAO->nuevoProdResiduo($pr3);

// Prueba2: eliminar registro de table producers_residues
//$pr = new ProductorResiduo();
//$pr->idProducer = 5;
//$pr->idResidue = "R1";
//$prDAO = new ProductorResiduoDAO();
//$prDAO->eliminarProdResiduo($pr);

// Prueba3: listar los residuos de un productor (en realidad los registros completos)
//$prDAO = new ProductorResiduoDAO();
//print_r($prDAO->listarProdResiduo(5));

?>
